using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using Com.AlbLab.GEP.Domain.Entities;
using Com.AlbLab.GEP.Domain.Entities.Standard;

namespace Com.AlbLab.GEP.Domain.Entities.Standard
{
   public class PST_M01_Messa_a_disposizione_di_dati_tecnici_acquisibili_con_lettura_di_un_gruppo_di_misura : BASE_PraticaStandard
    {

        GEP_DATIM01 _PraticaDB;

        public PST_M01_Messa_a_disposizione_di_dati_tecnici_acquisibili_con_lettura_di_un_gruppo_di_misura()
            : base()
        {

        }

        public PST_M01_Messa_a_disposizione_di_dati_tecnici_acquisibili_con_lettura_di_un_gruppo_di_misura(System.Data.DataColumnCollection cols, System.Data.DataRow dr)
            : base(cols, dr)
        {
            this.ListaControlliValori.Add(new string[] { "cod_reclamo", "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "tel", "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "lett_att/lett_att_1", "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "lett_att/lett_att_2", "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "lett_att/lett_att_3", "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "lett_reatt/lett_reatt_1", "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "lett_reatt/lett_reatt_2", "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "lett_reatt/lett_reatt_3", "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "lett_pot/lett_pot_1", "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "lett_pot/lett_pot_2", "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "lett_pot/lett_pot_3", "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "data_effettuaz_lett", "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "tipologia_lettura", "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "nuovo_tentativo", "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "appuntamento", "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "lett_att/lett_att_1_2", "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "lett_att/lett_att_2_2", "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "lett_att/lett_att_3_2", "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "lett_reatt/lett_reatt_1_2", "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "lett_reatt/lett_reatt_2_2", "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "lett_reatt/lett_reatt_3_2", "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "lett_pot/lett_pot_1_2", "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "lett_pot/lett_pot_2_2", "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "lett_pot/lett_pot_3_2", "0", null, null, null, null, null });
            this.ListaControlliValori.Add(new string[] { "data_effettuaz_lett_2", "0", null, null, null, null, null });
       }

        public override string CodiceServizio
        {
            get { return "M01"; }
        }

        public override string DescrizioneServizio
        {
            get { return "Messa a disposizione di dati tecnici acquisibili con lettura di un gruppo di misura."; }
        }

        public override object RecordDB
        {
            get 
            { 
                return _PraticaDB; 
            }
            set 
            { 
                _PraticaDB = (GEP_DATIM01)value; 
                IsSaved = true;
            }
        }

        public override void CaricaPraticaDB()
        {
            _PraticaDB = new GEP_DATIM01((decimal)DBCodicePratica);
            IsSaved = true;
            FromDB = true;
            FromFile = false;
        }

        public override void SalvaPraticaDB() 
        {
            _PraticaDB = new GEP_DATIM01(-1);
            _PraticaDB.Gep_testata.Tes_Cod_Servizio = this.CodiceServizio;
            _PraticaDB.Gep_testata.Tes_Piva_Utente = (string)RecordRaw[LCS_piva_utente];
            _PraticaDB.Gep_testata.Tes_Piva_Distributore = (string)RecordRaw[LCS_piva_distr];
            _PraticaDB.Gep_testata.Tes_Cod_Prat_Utente = (string)RecordRaw[LCS_cod_prat_distr];
            _PraticaDB.Gep_testata.Tes_Cod_Contr_Disp = (string)RecordRaw[LCS_cod_contr_disp];
            _PraticaDB.Gep_testata.Tes_Pod = (string)RecordRaw[LCS_pod];
            _PraticaDB.Gep_testata.Tes_Codfis_Cli = (string)RecordRaw[LCS_codfis_cliente];
            _PraticaDB.Gep_testata.Tes_Pariva_Cli = (string)RecordRaw[LCS_piva_cliente];
            _PraticaDB.Gep_testata.Tes_Tel_Cli = (string)RecordRaw["tel"];
            _PraticaDB.Dm01_Codreclamo = (string)RecordRaw["cod_reclamo"];
            _PraticaDB.Gep_testata.Tes_Codfis_Cli = (string)RecordRaw[LCS_codfis_cliente];
            _PraticaDB.Gep_testata.Tes_Pariva_Cli = (string)RecordRaw[LCS_piva_cliente];
            _PraticaDB.Gep_testata.Tes_Tel_Cli = (string)RecordRaw["tel"];
            _PraticaDB.Dm01_Dt_Let_Cli = DateTime.Parse(RecordRaw["data_effettuaz_lett"].ToString());   // (DateTime)RecordPratica["data_effettuaz_lett"];
            _PraticaDB.Dm01_Tip_Let_Recl = (string)RecordRaw["tipologia_lettura"];
            _PraticaDB.Dm01_Letrecl_Af1 = decimal.Parse(RecordRaw["lett_att/lett_att_1"].ToString());
            _PraticaDB.Dm01_Letrecl_Af2 = decimal.Parse(RecordRaw["lett_att/lett_att_2"].ToString());
            _PraticaDB.Dm01_Letrecl_Af3 = decimal.Parse(RecordRaw["lett_att/lett_att_3"].ToString());
            _PraticaDB.Dm01_Letrecl_Rf1 = decimal.Parse(RecordRaw["lett_reatt/lett_reatt_1"].ToString());
            _PraticaDB.Dm01_Letrecl_Rf2 = decimal.Parse(RecordRaw["lett_reatt/lett_reatt_2"].ToString());
            _PraticaDB.Dm01_Letrecl_Rf3 = decimal.Parse(RecordRaw["lett_reatt/lett_reatt_3"].ToString());
            _PraticaDB.Dm01_Letrecl_Pf1 = decimal.Parse(RecordRaw["lett_pot/lett_pot_1"].ToString());
            _PraticaDB.Dm01_Letrecl_Pf2 = decimal.Parse(RecordRaw["lett_pot/lett_pot_2"].ToString());
            _PraticaDB.Dm01_Letrecl_Pf3 = decimal.Parse(RecordRaw["lett_pot/lett_pot_3"].ToString());
            _PraticaDB.Dm01_Letcli_Af1 = decimal.Parse(RecordRaw["lett_att/lett_att_1_2"].ToString());
            _PraticaDB.Dm01_Letcli_Af2 = decimal.Parse(RecordRaw["lett_att/lett_att_2_2"].ToString());
            _PraticaDB.Dm01_Letcli_Af3 = decimal.Parse(RecordRaw["lett_att/lett_att_3_2"].ToString());
            _PraticaDB.Dm01_Letcli_Rf1 = decimal.Parse(RecordRaw["lett_reatt/lett_reatt_1_2"].ToString());
            _PraticaDB.Dm01_Letcli_Rf2 = decimal.Parse(RecordRaw["lett_reatt/lett_reatt_2_2"].ToString());
            _PraticaDB.Dm01_Letcli_Rf3 = decimal.Parse(RecordRaw["lett_reatt/lett_reatt_3_2"].ToString());
            _PraticaDB.Dm01_Letcli_Pf1 = decimal.Parse(RecordRaw["lett_pot/lett_pot_1_2"].ToString());
            _PraticaDB.Dm01_Letcli_Pf2 = decimal.Parse(RecordRaw["lett_pot/lett_pot_2_2"].ToString());
            _PraticaDB.Dm01_Letcli_Pf3 = decimal.Parse(RecordRaw["lett_pot/lett_pot_3_2"].ToString());
            //_PraticaDB.Gep_testata.Tes_Note= (string)RecordPratica["nuovo_tentativo"];
            // _PraticaDB.Gep_testata.Tes_Note= (string)RecordPratica["appuntamento"];
            _PraticaDB.Dm01_Dt_Let_Recl = DateTime.Parse(RecordRaw["data_effettuaz_lett_2"].ToString());
            _PraticaDB.Gep_testata.Tes_Note = RecordRaw["note"].ToString();
        }

        public override GEP_TESTATA GEP_testata
        {
            get
            {
                return _PraticaDB.Gep_testata;
            }
        }
    }
}
